<html>
<head><meta charset="utf-8"><title>Idea for explaining stages better · general · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/index.html">general</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html">Idea for explaining stages better</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="208635443"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/208635443" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#208635443">(Sep 01 2020 at 01:20)</a>:</h4>
<p>I opened <a href="https://github.com/rust-lang/rustc-dev-guide/pull/843">https://github.com/rust-lang/rustc-dev-guide/pull/843</a> trying to explain stages some more. Trying to drum up visibility since it won't go through MCP :) please take a look if you're interested!</p>



<a name="209448740"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/209448740" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#209448740">(Sep 08 2020 at 21:51)</a>:</h4>
<p>trying this again: <a href="https://github.com/rust-lang/rustc-dev-guide/pull/857/">https://github.com/rust-lang/rustc-dev-guide/pull/857/</a></p>



<a name="211977576"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/211977576" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#211977576">(Oct 01 2020 at 21:25)</a>:</h4>
<p>fyi <span class="user-mention" data-user-id="120518">@Eric Huss</span> <a href="https://github.com/rust-lang/rustc-dev-guide/pull/857">https://github.com/rust-lang/rustc-dev-guide/pull/857</a> is getting close to merging, you might be interested in taking a look  :)</p>



<a name="211977613"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/211977613" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#211977613">(Oct 01 2020 at 21:26)</a>:</h4>
<p>(wow, did this really take me a whole month?)</p>



<a name="212125119"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212125119" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eric Huss <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212125119">(Oct 02 2020 at 20:31)</a>:</h4>
<p>I read through the changes. I don't see any issues, but it's not clear to me how or where people get confused, so it's hard to know what will help.</p>



<a name="212126232"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212126232" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212126232">(Oct 02 2020 at 20:40)</a>:</h4>
<blockquote>
<p>it's not clear to me how or where people get confused</p>
</blockquote>
<p>mostly that '--stage 0' builds <em>with</em> the stage0 compiler, not that it gets built: <a href="#narrow/stream/182449-t-compiler.2Fhelp/topic/stage1.20compiler.20without.20std">https://rust-lang.zulipchat.com/#narrow/stream/182449-t-compiler.2Fhelp/topic/stage1.20compiler.20without.20std</a></p>



<a name="212127091"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212127091" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Noah Lev <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212127091">(Oct 02 2020 at 20:48)</a>:</h4>
<p>Here's something that confuses me: Does <code>--stage 1</code> build stage 1 or does it build <em>with</em> stage 1?</p>



<a name="212130874"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212130874" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212130874">(Oct 02 2020 at 21:26)</a>:</h4>
<p><code>build --stage 1</code> builds with stage 1, except rustdoc which is special</p>



<a name="212130900"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212130900" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Noah Lev <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212130900">(Oct 02 2020 at 21:27)</a>:</h4>
<p>Ah, so <code>--stage 1</code> builds stage 2 (except rustdoc)?</p>



<a name="212130911"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212130911" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Noah Lev <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212130911">(Oct 02 2020 at 21:27)</a>:</h4>
<p>What does it do for rustdoc?</p>



<a name="212130985"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212130985" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212130985">(Oct 02 2020 at 21:28)</a>:</h4>
<p><code>--stage 1 compiler/rustc</code> builds stage 2 without assembling it, I wouldn't say <code>--stage 1</code> builds stage 2 in general</p>



<a name="212131032"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212131032" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212131032">(Oct 02 2020 at 21:28)</a>:</h4>
<p><code>build --stage 1 src/tools/rustdoc</code> builds with stage 0 and links to stage 1</p>



<a name="212131062"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212131062" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212131062">(Oct 02 2020 at 21:29)</a>:</h4>
<p>unlike <code>build --stage 1 src/tools/clippy</code> which builds with stage 1 and links to stage 2</p>



<a name="212131426"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212131426" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212131426">(Oct 02 2020 at 21:32)</a>:</h4>
<p>(that's a bug though)</p>



<a name="212131445"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212131445" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212131445">(Oct 02 2020 at 21:33)</a>:</h4>
<p>it's just unclear which direction is expected</p>



<a name="212165979"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212165979" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212165979">(Oct 03 2020 at 10:56)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116122">simulacrum</span> <a href="#narrow/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better/near/212131426">said</a>:</p>
<blockquote>
<p>(that's a bug though)</p>
</blockquote>
<p>what is a bug? the staging behavior for clippy and miri makes sense, IMO; it is consistent with "build with stage X". so I assume rustdoc in the bug. why would the rustdoc direction be expected when it is not how anything else works?</p>



<a name="212184281"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212184281" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Noah Lev <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212184281">(Oct 03 2020 at 18:34)</a>:</h4>
<p>Wow, so confusing <span aria-label="confused" class="emoji emoji-1f615" role="img" title="confused">:confused:</span></p>



<a name="212184384"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212184384" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212184384">(Oct 03 2020 at 18:37)</a>:</h4>
<p>rustdoc's direction is currently the case mostly because people wanted stage 0 rustdoc to point at beta rustdoc. in order for there to not be an awkward hole (where stage 0 is beta and stage 1 is a full 2 compilers later) we shift rustdoc down a stage, matching rustc -- i.e., if we have a hypothetical src/tools/rustc, rustdoc matches that binary). clippy/miri are different in that a stage 0 build for them will still build a full compiler toolchain, iirc</p>



<a name="212184538"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212184538" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212184538">(Oct 03 2020 at 18:40)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> would it make sense to keep the current behavior of <code>doc --stage N</code>, but change <code>build</code> to match the other commands?</p>



<a name="212184547"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212184547" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212184547">(Oct 03 2020 at 18:41)</a>:</h4>
<p>Then if you're actually working on rustdoc the stages are consistent, but you can document with beta rustdoc if you want to</p>



<a name="212184556"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212184556" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212184556">(Oct 03 2020 at 18:41)</a>:</h4>
<p>maybe. not sure. I don't really use either so hard to say; might be more confusing.</p>



<a name="212184593"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212184593" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212184593">(Oct 03 2020 at 18:42)</a>:</h4>
<p>That seems more consistent in general with '--stage N runs the stage N compiler'</p>



<a name="212184599"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212184599" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212184599">(Oct 03 2020 at 18:42)</a>:</h4>
<p>I think it's a question of whether you treat rustdoc as a library or as a binary</p>



<a name="212184607"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212184607" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212184607">(Oct 03 2020 at 18:42)</a>:</h4>
<p>i.e., usually the binaries produced from stage N build will go into stage N+1/bin</p>



<a name="212184617"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212184617" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212184617">(Oct 03 2020 at 18:43)</a>:</h4>
<p>I think it should be consistent with compiler/rustc, which my idea does</p>



<a name="212184622"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212184622" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212184622">(Oct 03 2020 at 18:43)</a>:</h4>
<p>er, no? at least I think no</p>



<a name="212184623"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212184623" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212184623">(Oct 03 2020 at 18:43)</a>:</h4>
<p>As do the rest of the tools</p>



<a name="212184678"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212184678" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212184678">(Oct 03 2020 at 18:44)</a>:</h4>
<p>I don't see why not? You build rustdoc the first time with <code>build --stage 0</code> and it goes into stage1/bin</p>



<a name="212184684"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212184684" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212184684">(Oct 03 2020 at 18:44)</a>:</h4>
<p>As opposed to the current situation which builds with --stage 1 for the first time</p>



<a name="212184686"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212184686" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212184686">(Oct 03 2020 at 18:44)</a>:</h4>
<p>hm maybe</p>



<a name="212184695"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212184695" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212184695">(Oct 03 2020 at 18:44)</a>:</h4>
<p>I'd need to look at code and think about it for a bit</p>



<a name="212214783"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212214783" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212214783">(Oct 04 2020 at 09:29)</a>:</h4>
<p>I guess I don't see how "which rustdoc is used by <code>--stage 0 doc</code>" is connected with "which rustdoc is built by <code>--stage 0 build</code>".</p>



<a name="212222194"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212222194" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212222194">(Oct 04 2020 at 12:55)</a>:</h4>
<p>Well, that's sort of my complaint about bootstrap in general is that this is inconsistent across commands ;)</p>



<a name="212222205"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212222205" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212222205">(Oct 04 2020 at 12:55)</a>:</h4>
<p>But I think it should <em>at least</em> be consistently inconsistent and not treat rustdoc differently than other tools</p>



<a name="212222639"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212222639" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212222639">(Oct 04 2020 at 13:08)</a>:</h4>
<p>With my lense for "the stage says which compiler is sued to build the thing you are asking to be built", the problem is that with <code>doc</code> nothing really gets built...</p>



<a name="212222642"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212222642" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212222642">(Oct 04 2020 at 13:09)</a>:</h4>
<p>but I'd interpret this loosely as "it defines from which stage the rustdoc comes"</p>



<a name="212222653"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212222653" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212222653">(Oct 04 2020 at 13:09)</a>:</h4>
<p>so <code>doc --stage 0</code> should use the one from bootstrap and <code>doc --stage 1</code> should <code>build --stage 0 rustdoc</code> and then use that (similar to <code>test --stage 1 src/test/ui</code>)</p>



<a name="212222967"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212222967" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212222967">(Oct 04 2020 at 13:16)</a>:</h4>
<p>Yeah, that's my "consistently inconsistent" proposal. I guess that would need another MCP?</p>



<a name="212223315"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212223315" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212223315">(Oct 04 2020 at 13:26)</a>:</h4>
<p>also <span class="user-mention" data-user-id="120791">@RalfJ</span> <a href="https://github.com/rust-lang/rust/pull/77489">https://github.com/rust-lang/rust/pull/77489</a> is stalled on forming a consensus <del>even though there was already an MCP a month ago</del> so you might be interested in taking a look</p>



<a name="212223480"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212223480" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212223480">(Oct 04 2020 at 13:31)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232545">Joshua Nelson</span> <a href="#narrow/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better/near/212223315">said</a>:</p>
<blockquote>
<p>also <span class="user-mention silent" data-user-id="120791">RalfJ</span> <a href="https://github.com/rust-lang/rust/pull/77489">https://github.com/rust-lang/rust/pull/77489</a> is stalled on forming a consensus <del>even though there was already an MCP a month ago</del> so you might be interested in taking a look</p>
</blockquote>
<p>I don't really have an opinion on this TBH... I basically never use <code>x.py</code> without a filter, and cannot think of any that would be a good default</p>



<a name="212223483"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212223483" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212223483">(Oct 04 2020 at 13:31)</a>:</h4>
<p>TBH I'd probably make the filter mandatory if it was up to me^^</p>



<a name="212223601"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212223601" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212223601">(Oct 04 2020 at 13:34)</a>:</h4>
<p><span class="user-mention silent" data-user-id="120791">RalfJ</span> <a href="#narrow/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better/near/212222639">said</a>:</p>
<blockquote>
<p>With my lense for "the stage says which compiler is sued to build the thing you are asking to be built", the problem is that with <code>doc</code> nothing really gets built...</p>
</blockquote>
<p>the thing being built is the documentation</p>



<a name="212223608"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212223608" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212223608">(Oct 04 2020 at 13:34)</a>:</h4>
<p>so you're using the stage 0 compiler to build the docs, so in that sense <code>doc --stage 0</code> running beta is consistent with the rest of the subcommands</p>



<a name="212223700"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212223700" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212223700">(Oct 04 2020 at 13:37)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232545">Joshua Nelson</span> <a href="#narrow/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better/near/212223608">said</a>:</p>
<blockquote>
<p>so you're using the stage 0 compiler to build the docs, so in that sense <code>doc --stage 0</code> running beta is consistent with the rest of the subcommands</p>
</blockquote>
<p>agreed</p>



<a name="212223707"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212223707" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212223707">(Oct 04 2020 at 13:37)</a>:</h4>
<p>but <code>build --stage 0 rustdoc</code> is currently <em>not</em> consistent with the rest I'd argue</p>



<a name="212223759"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212223759" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212223759">(Oct 04 2020 at 13:38)</a>:</h4>
<p>right, that's the thing I want to change</p>



<a name="212230695"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212230695" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212230695">(Oct 04 2020 at 16:48)</a>:</h4>
<p>oh, I remembered I think why I thought we wanted this for other tools as well (or at least other subcommands).</p>
<p>x.py build --stage 1 clippy, ideally, would require only one rustc build. That implies using the <em>stage0</em> compiler to compile clippy, linking it against stage0 compiler artifacts. This would match rustdoc behavior</p>



<a name="212230743"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212230743" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212230743">(Oct 04 2020 at 16:48)</a>:</h4>
<p>that would also mean that e.g. x.py test --stage 1 src/test/ui src/tools/clippy is pretty fast, unlike today where I think that means two full rustc builds</p>



<a name="212232017"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212232017" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Noah Lev <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212232017">(Oct 04 2020 at 17:23)</a>:</h4>
<p><span class="user-mention silent" data-user-id="120791">RalfJ</span> <a href="#narrow/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better/near/212222639">said</a>:</p>
<blockquote>
<p>With my lense for "the stage says which compiler is sued to build the thing you are asking to be built", the problem is that with <code>doc</code> nothing really gets built...</p>
</blockquote>
<p>Well, it does end up in <code>build/doc</code>, so the documentation is what's being built.</p>



<a name="212232024"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212232024" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Noah Lev <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212232024">(Oct 04 2020 at 17:23)</a>:</h4>
<p>Oops, <span class="user-mention silent" data-user-id="232545">Joshua Nelson</span> already said that</p>



<a name="212240612"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212240612" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212240612">(Oct 04 2020 at 20:36)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116122">simulacrum</span> <a href="#narrow/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better/near/212230743">said</a>:</p>
<blockquote>
<p>that would also mean that e.g. x.py test --stage 1 src/test/ui src/tools/clippy is pretty fast, unlike today where I think that means two full rustc builds</p>
</blockquote>
<p>really the odd one out here is <code>test --stage 1 src/test/ui</code> though -- for testing <code>library/X</code> or <code>src/tools/miri</code>, <code>--stage 0</code> is already what you want to build rustc as few times as possible.</p>



<a name="212240618"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212240618" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212240618">(Oct 04 2020 at 20:37)</a>:</h4>
<p>hm, perhaps :)</p>



<a name="212240641"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212240641" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212240641">(Oct 04 2020 at 20:37)</a>:</h4>
<p>I do wonder -- testing clippy and UI tests feels like it should not be different, so it would make sense for both to have the same stage, I think</p>



<a name="212240688"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212240688" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212240688">(Oct 04 2020 at 20:38)</a>:</h4>
<p>I guess the difference is UI tests only depend on std, unless they're  fulldeps</p>



<a name="212240798"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Idea%20for%20explaining%20stages%20better/near/212240798" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better.html#212240798">(Oct 04 2020 at 20:40)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116122">simulacrum</span> <a href="#narrow/stream/122651-general/topic/Idea.20for.20explaining.20stages.20better/near/212240688">said</a>:</p>
<blockquote>
<p>I guess the difference is UI tests only depend on std, unless they're  fulldeps</p>
</blockquote>
<p>yeah I think that is the technical reason why <code>test --stage 0 src/test/ui</code> just doesn't work... running ui tests needs a compiler build <em>and a stdlib built with that compiler</em></p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>